This invention relates generally to communication systems, and more particularly to decoding in a receiver of a convolutionally coded communication system.
Convolutional codes are often used in digital communication systems to protect transmitted information from error. Such communication systems include the Direct Sequence Code Division Multiple Access (DS-CDMA) standard IS-95 and the Global System for Mobile Communications (GSM) and future CDMA2000 systems. Typically in these systems, a signal is convolutionally coded into an outgoing code vector that is transmitted. At a receiver, a practical soft-decision decoder, such as a Viterbi decoder as is known in the art, uses a trellis structure to perform an optimum search for the maximum likelihood transmitted code vector.
More recently, turbo codes have been developed that outperform conventional coding techniques. Turbo codes are generally composed of two or more convolutional codes and turbo interleavers. Turbo decoding is iterative and uses a soft output decoder to decode the individual convolutional codes. The soft output decoder provides information on each bit position which helps the soft output decoder decode the other convolutional codes. The soft output decoder is usually a MAP (maximum a posteriori) or soft output Viterbi algorithm (SOVA) decoder.
Turbo coding is efficiently utilized to correct errors in the case of communicating over an added white Gaussian noise (AWGN) channel. Intuitively, there are a few ways to examine and evaluate the error correcting performance of the turbo decoder. One observation is that the magnitude of log-likelihood ratio (LLR) for each information bit in the iterative portion of the decoder increases as iterations go on. This improves the probability of the correct decisions. The LLR magnitude increase is directly related to the number of iterations in the turbo decoding process. The rate of increase of the LLR magnitude varies as the quality of the incoming signal and the resulting number of errors incurred therein. In other words, the rate of increase of the LLR magnitude is related to channel conditions, where a more noisy environment increases error.
Prior art methods for improving turbo coder performance include scaling the channel outputs of the turbo decoder by an estimate of the channel characteristics. However, this scaling is only useful for the next set of data to be decoded and not for the data from which the channel estimate is derived. This problem is compounded where channel conditions are variable. In addition, an inaccurate estimate will yield sever performance degradation.
There is a need for an improvement that does not rely on channel estimation as a base for scaling. In addition, it would be of benefit to provide correction to existing data instead of using information from the existing data to correct subsequent data as is done in the prior art. Moreover, it would be beneficial to provide the improvement without an increase in calculation complexity, hardware requirements, or cost.